home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / HDX_BACK / MVICON / AFRAME.S < prev    next >
Encoding:
Text File  |  2001-02-09  |  1.9 KB  |  94 lines

  1.  
  2. COLBIT0    equ    $018
  3. COLBIT1    equ    $01A
  4. COLBIT2    equ    $01C
  5. COLBIT3    equ    $01E
  6. LSTLIN    equ    $020
  7. LNMASK    equ    $022
  8. WMODE    equ    $024
  9. X1        equ    $026
  10. Y1        equ    $028
  11. X2        equ    $02A
  12. Y2         equ    $02C
  13. PATPTR     equ    $02E
  14. PATMSK    equ    $032
  15. MFILL    equ    $034
  16.  
  17. ;------------------------------------------
  18. ;
  19. ; _drawframe(X,Y,W,Z)
  20. ; WORD    X1         4(sp)
  21. ; WORD    Y1         6(sp)
  22. ; WORD    W1         8(sp)
  23. ; WORD    Z1         a(sp)
  24. ; draw a frame at the points (X,Y) and (W,Z)
  25.  
  26.  
  27.         .globl    _drawframe
  28.  
  29. _drawframe:
  30.  
  31.         dc.w    $A000
  32.         movea.l    a0,    a3
  33.         movea.l    a1,    a4
  34.         movea.l    a2,    a5
  35.         move.w     4(sp), d3
  36.         move.w     6(sp), d4
  37.         move.w     8(sp), d5
  38.         move.w     $a(sp), d6
  39.         cmp.w    d3,    d5 
  40.         bge.w    COMP
  41.         move.w    d3,    d7
  42.         move.w    d5,    d3
  43.         move.w    d7,    d5
  44.         cmp.w    d4,    d6 
  45. COMP:    bge.w    DRAW
  46.         move.w    d4,    d7
  47.         move.w    d6,    d4
  48.         move.w    d7,    d6
  49.  
  50. DRAW:    move.l    a3,    d0
  51.         move.l    #$00010001, COLBIT0(a0)        ; set COLBIT variables
  52. ;move.w    #1, COLBIT1(a0)
  53.         move.l    #$00010001, COLBIT2(a0)     
  54. ;move.w    #1, COLBIT3(a0)
  55.         move.w    #1,    LSTLIN(a0)            ; draw last pixel of line
  56.         move.l    #$FFFF0002, LNMASK(a0)    ; line style mask
  57. ;move.w    #2, WMODE(a0)         writing mode (replace)
  58.         move.w     d3, X1(a0)            ; (x1,y1) and (x2, y2) into
  59.         move.w     d4, Y1(a0)            ; appropriate variables
  60.         move.w     d3, X2(a0)
  61.         move.w     d6, Y2(a0)
  62.         dc.w    $A003                ; Arbitrary Line
  63.  
  64.  
  65.         movea.l    a4,    a1
  66.         movea.l    a5,    a2
  67.         move.w     d5, X2(a3)
  68.         move.l    #pat, PATPTR(a3)    ; pattern pointer
  69.         clr.l     PATMSK(a3)            ; Pattern length n-1=0
  70. ;clr.w     MFILL(a0)             Multiple Plane fill off
  71.         dc.w    $A004                ; Arbitrary Line
  72.  
  73.  
  74.         move.l    a3,    d0
  75.         movea.l    a4,    a1
  76.         movea.l    a5,    a2
  77.         move.w     d5, X1(a3)            ; (x1,y1) and (x2, y2) into
  78.         move.w     d4, Y1(a3)            ; appropriate variables
  79.         move.w     d5, X2(a3)
  80.         move.w     d6, Y2(a3)
  81.         dc.w    $A003                ; Arbitrary Line
  82.  
  83.         movea.l    a4,    a1
  84.         movea.l    a5,    a2
  85.         move.w     d3, X1(a3)
  86.         move.w     d6, Y1(a3)
  87.         dc.w    $A004                ; Arbitrary Line
  88.         rts
  89.  
  90. .data
  91. pat:    dc.w    $FFFF                ; Pattern for line.
  92.  
  93.  
  94.